跳到主要内容

小程序SDK

提示

小程序SDK目前仅适用于微信小程序,其他小程序包括:支付宝、百度、钉钉、今日头条正在准备中。小程序SDK是在 JavaScript SDK的基础上进行的封装,主要为了提升在小程序项目中的使用体验。JavaScript SDK中的大部分方法在React SDK中也同样适用,详见JavaScript SDK

提示

小程序SDK 从 2.0.1 版本开始支持事件上报的能力。

SDK quick links

除了本参考指南外,我们还提供源代码、API 参考文档和示例应用程序,相关链接如下所示:

ResourceLocation
SDK API 文档 SDK API docs
GitHub 代码库Client Side SDK for MiniProgram
接入示例Demo code
已发布模块npm

快速尝试 Demo Code

我们提供了一个可运行的演示代码,让您了解如何使用 FeatureProbe SDK。

  1. 首先需要选择通过连接哪个环境的FeatureProbe来控制你的程序

  2. 下载这个 repo 并运行演示程序:

git clone https://github.com/FeatureProbe/client-sdk-miniprogram.git
cd client-sdk-miniprogram
  1. 修改example程序中的链接信息。

    • 对于在线演示环境:

      client_sdk_key snapshot

    • 对于本地docker环境:

      • remoteUrl = "http://YOUR_DOCKER_IP:4009/server"
      • clientSdkKey = "client-25614c7e03e9cb49c0e96357b797b1e47e7f2dff"
  2. 运行程序。

分步指南

本指南将说明中如何在 微信小程序 应用程序中使用 FeatureProbe 功能开关。

Step 1. 安装小程序SDK

在您的应用程序中安装 FeatureProbe SDK 作为依赖项。

npm install featureprobe-client-sdk-miniprogram --save

Step 2. 初始化SDK客户端

初始化 SDK 客户端,填写SDK初始化过程中的必填参数

import { initialize, FPUser } from 'featureprobe-client-sdk-miniprogram';

const user = new FPUser();
user.with("userId", /* userId */);

const featureProbeClient = initialize({
remoteUrl: "https://featureprobe.io/server",
// remoteUrl: "https://127.0.0.1:4007", // for local docker
clientSdkKey: /* clientSdkKey */
user,
});

featureProbeClient.start();

Step 3. 获取开关的返回值

您可以从 globalData 对象中获取变量值,SDK会自动更新 globalData.toggles 对象

const app = getApp();   // getApp是微信小程序提供的全局方法

const value = app.globalData.toggles[/* toggleKey */].value;
const reason = app.globalData.toggles[/* toggleKey */].reason;

您还可以使用 SDK 对外暴露的 API 来获取开关返回值或返回值详情

featureProbeClient.on("ready", function() {
const result = featureProbeClient.boolValue(/* toggleKey */, false);
if (result) {
do_some_thing();
} else {
do_other_thing();
}
const reason = featureProbeClient.boolDetail(/* toggleKey */, false);
console.log(reason);
})

事件上报

备注

小程序SDK 从 2.0.1 版本开始支持事件上报的能力。

上报自定义事件

当SDKready后,调用SDK提供的track方法上报自定义事件。

featureProbeClient.on('ready', function() {
// 上报自定义事件
// 第一个参数是自定义事件名
// 第二个可选参数是自定义指标值
featureProbeClient.track('YOUR_CUSTOM_EVENT_NAME_1');
featureProbeClient.track('YOUR_CUSTOM_EVENT_NAME_2', 5.5);
})

SDK初始化的参数

选项是否必填默认值描述
remoteUrl若其他URL未填写则必填n/a远端 URL 用来获取开关和上报事件
togglesUrlnon/a单独设置开关下发 URL,如果设置会忽略 remoteUrl前缀的地址
eventsUrlnon/a单独设置事件上报 URL,如果设置会忽略 remoteUrl前缀的地址
clientSdkKeyyesn/aSDK Key用来验证权限
useryesn/aUser 对象可以通过With方法设置属性,用来根据属性判断开关规则
refreshIntervalno1000设置 SDK 的开关和事件刷新时间
timeoutIntervalno10000设置 SDK 初始化等待的超时时间,超时后SDK将发布error事件